<?php namespace Admin\Controller;
class CateController extends CommonController{
//    把实例化好的model存在静态变量
    private $model;
//    初始化  实例化model
    public function __auto(){
        $this->model=new \Common\Model\Cate;
    }

    public function index(){

        $data=$this->model->orderby('csort','ASC')->get();

        $data = Data::tree($data,'cname','cid','pid');
//        p($data);
        View::with('data',$data);
        View::make();
    }


//    添加顶级
    public function addcate(){
        if(IS_POST){
            if($this->model->store()){
                View::success('添加成功',U('index'));
            }else{
//                可以用getError 获得到错误信息
                View::error($this->model->getError());
            }
        }
        View::make();
    }
//添加子类
//    基础部分和顶级添加类似
    public function addson(){
        if(IS_POST){
            if($this->model->store()){
                View::success('子类添加成功',U('index'));
            }else{
                View::error($this->model->getError());
            }
        }
//        获得所属分类
        $cid=Q('get.cid',0,'intval');
        $cate=$this->model->where("cid={$cid}")->find();
        View::with('cate',$cate);
        View::make();
    }

//    删除分类
    public function del(){
//        删除之前要先判断分类下是否有文章
        $cid=Q('get.cid',0,'intval');
        $arcModel=new \Common\Model\Arc();
        $arcdata=$arcModel->where("category_cid={$cid}")->find();
        if($arcdata){
            View::error('该分类下有文章，请先删除文章');
        }

//        删除应该考虑  下面的子分类，要向上进一级
//        应该先根据cid获取被删数据的pid    pluck直接获取一个值
        $pid=$this->model->where("cid={$cid}")->pluck('pid');
//        再找到pid  等于被删cid 的子类   把他的pid  变成父级的pid
        $this->model->where("pid={$cid}")->update(array('pid'=>$pid));

//        然后  再删除类
        $this->model->where("cid={$cid}")->delete();
        View::success('删除成功');


    }

//    编辑分类
    public function editcate(){
//        修改
        if(IS_POST){
            if($this->model->edit()){
                View::success('修改成功',U('index'));
            }
                View::error($this->model->getError());
        }

//       1获得旧数据
        $cid=Q('get.cid',0,'intval');
        $oldData=$this->model->where("cid={$cid}")->find();
//        p($oldData);
        View::with('oldData',$oldData);
////        2处理所属分类，除去自己和子集
        $cateData=Data::tree($this->model->getNotmy($cid),'cname');
//        p($cateData);
        View::with('cateData',$cateData);
        View::make();
    }




//    public function editcate(){
////        获取要编辑的分类的cid
//        $cid=Q('get.cid',0,'intval');
//        $pid=$this->model->where("cid={$cid}")->pluck('pid');
////        得到要编辑的分类的所属分类
//        $pa=$this->model->where("cid={$pid}")->get();
////        先得到数据库中的数据遍历出来，在页面中显示
//        $cate=$this->model->where("cid={$cid}")->get();
////        获取要编辑的分类下面的子类的名称
//        $soncname=$this->model->where("pid={$cid}")->pluck('cname');
////        p($cate);
////          p($pa);
//        if(IS_POST){
////            判断是否和子类的名字相同，如果相同提示错误
//            if(Q('post.cname')==$soncname){
//                View::error('不能修改成和子类相同的名字');
//            }
//
////            如果编辑条件都满足，那么编辑成功
//
//            if($this->model->stored()){
//                View::success('编辑成功',U('index'));
//            }else{
//                View::error($this->model->getError());
//            }
//        }
//        View::with('pa',$pa);
//        View::with('cate',$cate);
//        View::make();
//    }



}